/**
 * Created by c.y on 2018-3-7
 * 文件说明: 对于table列表，查询条件的输入值判断，以及日期的格式化
 */

import validate from './validator';
import dateFormat from './date';

/**
 * 查询条件的输入值，进行为空的判断, 为空的话赋值为null
 * @param formModal
 * @return {*}
 */
function buildUpSearchForm(formModal) {
    if (typeof formModal !== 'object') {
        throw new Error('参数不是一个对象');
    }
    for (let i in formModal) {
        // 对象的自身的属性，不是继承来的属性
        if (formModal.hasOwnProperty(i)) {
            // 所有的查询条件，需要判断输入空格，即需要去掉前后空格
            if (validate.checkValEmpty(formModal[i])) {
                formModal[i] = null;
            } else {
                if (typeof formModal[i] === 'string' && validate.checkValEmpty(formModal[i].trim())) {
                    formModal[i] = null;
                }
            }
        }
    }
    return formModal;
}

/**
 * 表单的时间的DateRange日期的重新组装，提交到后台
 * @param dateRange
 * @return {*}
 */
function formatFormDate(dateRange) {
    // dateRange用户如果选择的话，那么就是空字符串，不然就是一个数组
    if (dateRange === '' || dateRange === null) {
        return {
            startDay: null,
            endDay: null
        };
    }
    if (dateRange instanceof Array) {
        if (validate.checkValEmpty(dateRange[0])) {
            return {
                startDay: null,
                endDay: null
            };
        }
        return {
            startDay: dateFormat(dateRange[0], 'YYYY-MM-DD'),
            endDay: dateFormat(dateRange[1], 'YYYY-MM-DD')
        };
    }
}

export default {
    buildUpSearchForm: buildUpSearchForm,
    formatFormDate: formatFormDate
};
